package mainPackage;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Vector;

import correctionPackage.Correcteur;
import reseauPackage.Perceptron;

public class TesteurSINUS
{
	private Perceptron p ;
	private int iter ;

	public TesteurSINUS(Perceptron p , int iter) 
	{
		this.iter = iter ;
		this.p = p;
	}
	
	private void tableVerite(FileWriter out)
	{
		//
	}
	
	public void test()
	{
		File f1 = new File("SINUS.dat");
		FileWriter out = null ;
		try 
		{
			out = new FileWriter(f1);
		}
		catch (IOException e1) 
		{
			e1.printStackTrace();
		}
		
		Correcteur correcteur = new Correcteur(p);
		
		int cp = 0 ;
		for( int i = 0 ; i < iter ; i++)
		{
			
			for( double angle = -1.0 ; angle < 1.0 ; angle += 0.125)
			{
				Vector<Double> depart  = new Vector<Double>();
				Vector<Double> arrivee = new Vector<Double>();
				Vector<Double> attendu = new Vector<Double>();
				
				depart.add(angle);p.propagerSignal(depart);
				
				arrivee = p.calculerValeursSortie() ;
				
				attendu.add(Math.sin(angle));
				correcteur.corriger(attendu);
				
				
				double erreur = p.calculerErreurCarre(attendu);
				System.out.println("erreur : "+erreur);
				try 
				{
					out.write("# signal recu = "+arrivee.get(0)+" signal attendu = "+attendu.get(0)+"\n");
					out.write(cp+","+erreur+"\n");cp++;
				}
				catch (IOException e) {e.printStackTrace();}	
			
			}
			
			tableVerite(out);
		}
		
		try 
		{
			out.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
	

}
